--- title: "3、承压计算" created: 2025-11-28 tags: - 算法 --- # 3、承压计算 ## 题目 [承压计算](https://www.lanqiao.cn/paper/3854/problem/647/) ![[image-ddbbc01b.png]] ``` 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 8 8 4 1 7 9 6 1 4 5 4 5 6 5 5 6 9 5 6 5 5 4 7 9 3 5 5 1 7 5 7 9 7 4 7 3 3 1 4 6 4 5 5 8 8 3 2 4 3 1 1 3 3 1 6 6 5 5 4 4 2 9 9 9 2 1 9 1 9 2 9 5 7 9 4 3 3 7 7 9 3 6 1 3 8 8 3 7 3 6 8 1 5 3 9 5 8 3 8 1 8 3 3 8 3 2 3 3 5 5 8 5 4 2 8 6 7 6 9 8 1 8 1 8 4 6 2 2 1 7 9 4 2 3 3 4 2 8 4 2 2 9 9 2 8 3 4 9 6 3 9 4 6 9 7 9 7 4 9 7 6 6 2 8 9 4 1 8 1 7 2 1 6 9 2 8 6 4 2 7 9 5 4 1 2 5 1 7 3 9 8 3 3 5 2 1 6 7 9 3 2 8 9 5 5 6 6 6 2 1 8 7 9 9 6 7 1 8 8 7 5 3 6 5 4 7 3 4 6 7 8 1 3 2 7 4 2 2 6 3 5 3 4 9 2 4 5 7 6 6 3 2 7 2 4 8 5 5 4 7 4 4 5 8 3 3 8 1 8 6 3 2 1 6 2 6 4 6 3 8 2 9 6 1 2 4 1 3 3 5 3 4 9 6 3 8 6 5 9 1 5 3 2 6 8 8 5 3 2 2 7 9 3 3 2 8 6 9 8 4 4 9 5 8 2 6 3 4 8 4 9 3 8 8 7 7 7 9 7 5 2 7 9 2 5 1 9 2 6 5 3 9 3 5 7 3 5 4 2 8 9 7 7 6 6 8 7 5 5 8 2 4 7 7 4 7 2 6 9 2 1 8 2 9 8 5 7 3 6 5 9 4 5 5 7 5 5 6 3 5 3 9 5 8 9 5 4 1 2 6 1 4 3 5 3 2 4 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ``` ## 思路分析 每一块的重量平均发给左下 右下两块 数字三角形模型dp 另外注意进制的问题 题目说不确定进制数 所以给了个最小答案 要根据这个求出进制数 再根据这个表示出最大答案 ## 代码实现 ```cpp #include using namespace std; const int N=2010; double a[N][N],f[N][N]; int main() { //因为从上往下推 每一个状态由左上右上转移而来 会用到边界 所以预留一行一列不用 从1开始 for(int i=1;i<=29;i++){ for(int j=1;j<=i;j++){ cin>>a[i][j]; // 左上 右上 f[i][j]=f[i-1][j-1]/2+f[i-1][j]/2+a[i][j]; } } double maxv=0,minv=N; for(int i=1;i<=30;i++){ f[30][i]=f[29][i-1]/2 + f[29][i]/2; maxv=max(maxv,f[30][i]); minv=min(minv,f[30][i]); } //不确定进制 要根据给的最小值 2086458231求出来 printf("%lf", 2086458231 / minv * maxv); return 0; } ``` ## 同类题型 ## 视频讲解 --- ⬅️ [[2、等差素数列|2、等差素数列]] 🏠 [[00-刷题理模型]] ➡️ [[2-Learning/02-算法/03-刷题理模型/历年真题 模考特训/第八届 c++ B组 省赛/4、方格分割|4、方格分割]]